/**
 * #info
 *
 *@author   wuwg
 *@createTime   2018/03/20
 *@updateTime   2018/04/24
 *@description  dropdown-menu  component  包裹下拉菜单的组件
 */

/**
 * #item
 *
 * @type        aty-dropdown-menu
 * @cn          下拉菜单组
 * @stPlugin    false
 * @stContainer false
 * @parents     [aty-dropdown]
 * @children    [aty-dropdown-item]
 */

import config from '../../../../config/config.js'

// components
import dropdownItem from '../dropdown-item/index.vue'
// prefix
const prefixCls = config.prefix + '-dropdown-menu'
// module
const module = {
  name: prefixCls,
  components: { dropdownItem },
  props: {
    /**
     * #property
     *
     * @name    data
     * @cn      下拉菜单的数据
     * @type    array
     * @bind    must
     * @value   []
     * @description 下拉菜单的数据。数据全部字段为
     *      [
     * {
     * code:1,    // 代码值
     * disabled:true||false,  // 是否禁用
     * selected:true||false,  // 是否选中
     * divided:true||false,  // 是否有分割线
     * name:'中国人'   // !important  此必须字段，其他的为可选字段，用户也可以自己朝对象中增加其他字段
     * }
     * ]
     */
    data: {
      type: Array,
      default () {
        return []
      }
    }
  },
  data () {
    return {
      prefixCls: prefixCls,
      currentData: this.data,
      scope: {
        className: prefixCls
      }
    }
  },
  watch: {
    data () {
      // 数据变了, 并且是显示的状态,更新一下popper的位置
      const dropdown = this.$parent.$parent
      if (dropdown.currentVisible) {
        this.$nextTick(()=>dropdown.$refs.drop.update())
      }
    }
  },
  computed: {
    wrapClass () {
      return [prefixCls]
    }
  }
}
export default module
